@file:Suppress("unused")

package com.csw.android.dev_utils.ex

import android.util.TypedValue
import android.view.View

/**
 * View扩展函数
 */
object ViewEx {

    /**
     * 为多个视图设置点击事件
     */
    fun List<View>.setOnClickListener(onClickListener: View.OnClickListener){
        forEach{
            it.setOnClickListener(onClickListener)
        }
    }

    /**
     * 设置view不可见但占用位置
     */
    fun View.invisible(visible: Boolean = false) {
        visibility = if (visible) View.VISIBLE else View.INVISIBLE
    }

    /**
     * 设置view为隐藏状态
     */
    fun View.gone(visible: Boolean = false) {
        visibility = if (visible) View.VISIBLE else View.GONE
    }

    /**
     * px转dp
     */
    fun View.dp(value: Float): Float {
        return value / resources.displayMetrics.density
    }

    /**
     * px转sp
     */
    fun View.sp(value: Float): Float {
        return value / resources.displayMetrics.scaledDensity
    }

    /**
     * 其他类型转px
     * @param unit 参数数值类型 dp=[TypedValue.COMPLEX_UNIT_DIP],sp=[TypedValue.COMPLEX_UNIT_SP]
     */
    fun View.px(value: Float, unit: Int = TypedValue.COMPLEX_UNIT_DIP): Float {
        return TypedValue.applyDimension(
            unit,
            value,
            resources.displayMetrics
        )
    }
}